package com.cai.dao;

import com.cai.pojo.UserLogin;
import org.apache.commons.dbutils.ResultSetHandler;

import java.util.List;

/**
 * @author RuoLi
 * 用户方法
 */
public interface UserDao {
    /**
     * 查询用户账号密码和类型
     * @param userAccount 账号
     * @param userPassword 密码
     * @return 1 用户存在 否则不存在
     */
    int userLogin(String userAccount, String userPassword);

    /**
     * 查询用户身份
     * @param userAccount 账号
     * @param userPassword 密码
     * @return 返回用户身份String类型
     */
    List<UserLogin> verifyIdentity(String userAccount, String userPassword);

    /**
     * 查用用户信息
     * @param userId id
     * @return List<UserLogin>
     */
    List<UserLogin> verifyUserInfo(int userId);

    /**
     * 添加用户信息
     * @param userLogin UserLogin
     * @return 失败 -1 成功 返回新账号
     */
    int insertUser(UserLogin userLogin);

    /**
     * 获取当前账号的最大值
     * @return 返回字符
     */
    String getUserMaxAccount();

    /**
     * 更改用户密码 根据账号和邮箱
     * @param userAccount 用户账号
     * @param userMail 用户邮箱
     * @param newPassword 新密码
     * @return 1 成功 -1 失败
     */
    int updateUserPassword(String userAccount,String userMail,String newPassword);

    /**
     * 根据用户id查询用户账号
     * @param userId id
     * @return -1 不存在
     */
    int showUserAccount(int userId);

    /**
     * 获取用户信息
     * @param currentPage 当前页
     * @param pageSize 页数据量
     * @return json 格式
     */
    String getUserData(int currentPage, int pageSize);

    /**
     * 更改用户账号状态
     * @param account 账号
     * @param accountStatus  账号状态
     * @return 1 成功
     */
    int setAccountStatus(String accountStatus, String account);

    /**
     * 查询账号是否存在
     * @param account 用户账号
     * @return 0 不存在 1存在
     */
    int AccountExist(String account);
}
